home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2000 #4 / Amiga Plus CD - 2000 - No. 4.iso / Tools / Emulatoren / C64-Diskmagz / mailma25 / mm25d.d64 / virus-killer (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2000-02-15  |  2.7 KB  |  91 lines

  1. 10 POKE 53280,0:POKE 53281,0
  2. 20 DIM V1(144),V2(144)
  3. 30 DIM DA(32),FI$(144),TR(144),SE(144),VF$(144),VT(144),VS(144),D1(144),D2(144)
  4. 40 FOR I=1 TO 32:READ DA(I):NEXT I
  5. 50 PRINT"[147]        BHP-VIRUS-KILLER [146]":PRINT"          10.11.87 (TR)"
  6. 60 PRINT"[153] 1 [146] SUCHE NACH VIREN"
  7. 70 PRINT" 2 [146] ZEIGE VERSEUCHTE FILES"
  8. 80 PRINT" 3 [146] VIREN ENTFERNEN"
  9. 90 PRINT" 4 [146] DIRECTORY"
  10. 100 PRINT" 5 [146] PROGRAMMENDE"
  11. 110 GET A$:IF A$=""THEN 110
  12. 120 PRINT A$:ON VAL(A$)GOTO 140,470,520,830,900
  13. 130 GOTO 110
  14. 140 REM UEBERPRUEFE DISKETTE
  15. 150 GOSUB960:IF F THEN PRINT"[147]"A2$:GOSUB 930:GOTO 50
  16. 160 OPEN1,8,15,"I":OPEN2,8,2,"#":PRINT"[147] PASS 1 [146]"
  17. 170 TR=18:SE=1:FZ=0
  18. 180 PRINT#1,"U1 2 0 18"SE:SX=SE
  19. 190 GET#2,A$,B$
  20. 200 TR=ASC(A$+CHR$(0)):SE=ASC(B$+CHR$(0))
  21. 210 FOR BP=2 TO 226 STEP 32
  22. 220 PRINT#1,"B-P 2";BP
  23. 230 GET#2,A$:IF(ASC(A$+CHR$(0))AND 15)<>2 THEN NEXT BP:GOTO280
  24. 240 FZ=FZ+1:GET#2,A$,B$:TR(FZ)=ASC(A$+CHR$(0)):SE(FZ)=ASC(B$+CHR$(0))
  25. 250 FI$(FZ)="":D1(FZ)=SX:D2(FZ)=BP+1
  26. 260 FOR I=1 TO 16:GET#2,A$:FI$(FZ)=FI$(FZ)+A$:NEXT I
  27. 270 PRINT".";:NEXT BP
  28. 280 IF TR<>0 THEN 180
  29. 290 PRINT:IF FZ=0 THEN PRINT"KEINE PRG-FILES AUF DIESER DISKETTE!":GOTO 420
  30. 300 PRINT" PASS 2"
  31. 320 VZ=0:Z=0
  32. 330 Z=Z+1
  33. 340 PRINT#1,"U1 2 0";TR(Z);SE(Z)
  34. 350 GET#2,A$,B$:FT=ASC(A$+CHR$(0)):FS=ASC(B$+CHR$(0)):GET#2,A$,A$
  35. 360 FOR I=1 TO 32:GET#2,A$:A=ASC(A$+CHR$(0))
  36. 370 IF A=DA(I) THEN NEXT I:GOTO 430
  37. 380 I=34:NEXT I
  38. 390 PRINT".";:IF Z<>FZ THEN 330
  39. 410 IF VZ=0 THEN PRINT:PRINT"KEINE BHP-VIREN GEFUNDEN!"
  40. 420 CLOSE2:CLOSE1:GOSUB 930:GOTO 50
  41. 430 PRINT:PRINT"VIRUS IM PROGRAMM "FI$(Z)"!!!"
  42. 440 VZ=VZ+1:VZ$(VZ)=FI$(Z):VT(VZ)=TR(Z):VZ(VZ)=SE(Z)
  43. 450 V1(VZ)=D1(Z):V2(VZ)=D2(Z)
  44. 460 GOTO 390
  45. 470 REM ZEIGE VERSEUCHTE FILES
  46. 490 PRINT" VERSEUCHTE PROGRAMME: [146]"
  47. 500 FOR I=1 TO VZ:PRINTVF$(I):NEXT I
  48. 510 GOSUB 930:GOTO 50
  49. 520 REM VIREN ENTFERNEN
  50. 530 PRINT"[147]";:IF VZ=0 THEN PRINT"KEINE VERSEUCHTEN PROGRAMME.":GOSUB 930:GOTO 50
  51. 540 GOSUB 960:IF F THEN PRINT"[147]"A2$:GOSUB930:GOTO 50
  52. 550 OPEN 1,8,15,"I":OPEN 2,8,2,"#"
  53. 560 FOR Z=1 TO VZ:PRINT""VF$(Z)"[146] - ";:TR=VT(Z):SE=VS(Z)
  54. 570 FOR I=1 TO 8:PRINT#1,"B-F 0";TR;SE
  55. 580 PRINT#1,"U1 2 0";TR;SE
  56. 590 GET#2,A$,B$:TR=ASC(A$+CHR$(0)):SE=ASC(B$+CHR$(0))
  57. 600 NEXT I
  58. 630 PRINT#1,,"U1 2 0 18";V1(Z):PRINT#1,"B-P2";V2(Z)
  59. 640 PRINT#2,CHR$(TR);CHR$(SE)
  60. 650 PRINT#1,"U2 2 0 18";V1(Z):INPUT#1,A1$,A2$,A3$,A4$
  61. 651 IF A1$<>"00" THEN PRINT A2$:CLOSE 2:CLOSE1:GOSUB 930:GOTO 50
  62. 660 PRINT "VIRUS ENTFERNT"
  63. 670 PRINT#1,"B-P 2";V2(Z)+27
  64. 680 GET#2,A$,B$:DL=ASC(A$+CHR$(0))+ASC(B$+CHR$(0))*256
  65. 700 ZZ=0
  66. 710 ZZ=ZZ+1:PRINT#1,"U1 2 0";TR;SE
  67. 720 GET#2,A$,B$:TR=ASC(A$+CHR$(0)):SE=ASC(B$+CHR$(0))
  68. 740 IF TR<>0 THEN 710
  69. 750 IF DL=ZZ THEN 820
  70. 760 PRINT#1,"U1 2 0 18";V1(Z):PRINT#1,"B-P 2";V2(Z)+27
  71. 770 ZL=ZZ AND 255:ZH=INT(ZZ/256)
  72. 780 PRINT#2,CHR$(ZL);CHR$(ZH);
  73. 790 PRINT#1,"U2 2 0 18";V1(Z)
  74. 820 NEXT Z:VZ=0:CLOSE 2:CLOSE 1:GOTO 50
  75. 830 REM DIRECTORY
  76. 840 GOSUB 960:IF F THEN PRINT"[147]"A2$:GOSUB 930:GOTO 50
  77. 850 PRINT"[147] 0 ";:OPEN 1,8,0,"$":POKE 781,1:SYS 65478:GET A$,A$,A$,A$:X$=CHR$(0)
  78. 860 FOR I=1 TO 7:GET A$,B$,C$,D$:PRINT A$B$C$D$;:NEXT:PRINT:GET A$,A$,A$,B$
  79. 870 IF ST THEN SYS65484:GOTO 890
  80. 880 PRINT ASC(A$+X$)+256*ASC(B$+X$);:GOTO 860
  81. 890 CLOSE 1:GOSUB 930:GOTO 50
  82. 900 SYS 2048
  83. 910 DATA 31,8,194,7,158,194,40,52,51,41,17,0,194,40,52,52,40
  84. 920 DATA 172,50,53,54,170,52,56,58,86,73,8,2,85,83,0,0,0
  85. 930 PRINT:PRINT:PRINT"<RETURN>":POKE 198,0
  86. 940 GET A$:IF A$<>CHR$(13) THEN 940
  87. 950 RETURN
  88. 960 REM DISKETTEN-CHECK
  89. 970 F=1:OPEN 1,8,15,"I":INPUT#1,A1$,A2$,A3$,A4$:CLOSE 1:IF A1$="00" THEN F=0
  90. 980 RETURN
  91.